﻿#region << 版 本 注 释 >>
/*----------------------------------------------------------------
 * 版权所有 (c) 2022   保留所有权利。
 * CLR版本：4.0.30319.42000
 * 机器名称：DESKTOP-UL84BU5
 * 公司名称：
 * 命名空间：KingerRobot.WanliMDC.SpiService.Services.AbnormalBussiness
 * 唯一标识：4b3aad9c-5ffa-4d0f-ac23-637d0c3761ec
 * 文件名：IAbnormal
 * 当前用户域：DESKTOP-UL84BU5
 * 
 * 创建者：zzl
 * 电子邮箱：1003590782@qq.com
 * 创建时间：2022/5/24 16:19:58
 * 版本：V1.0.0
 * 描述：
 *
 * ----------------------------------------------------------------
 * 修改人：
 * 时间：
 * 修改说明：
 *
 * 版本：V1.0.1
 *----------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
namespace KingerRobot.MexicoSailunMDC.SpiService.Services.AbnormalBussiness;

internal interface IAbnormal
{
    /// <summary>
    /// 创建异常
    /// </summary>
    /// <param name="productCode"></param>
    /// <param name="locId"></param>
    /// <param name="remark">异常原因</param>
    /// <returns></returns>
    (long taskId, ProdProductBindingBean bean) CreateAbnormal(string productCode, long ptaskId, long locId, string remark);

    /// <summary>
    /// 创建环形线异常
    /// </summary>
    /// <param name="productCode"></param>
    /// <param name="locId"></param>
    /// <param name="remark">异常原因</param>
    /// <returns></returns>
    (long taskId, ProdProductBindingBean bean) CreateCircularAbnormal(string productCode, long ptaskId, long locId, string remark);
    /// <summary>
    /// 创建异常任务 返回任务ID
    /// </summary>
    /// <param name="locId">当前位置</param>
    /// <param name="skuId">SKU</param>
    /// <param name="remark">异常原因</param>
    /// <returns></returns>
    long LocationAbnormalTaskAndCmdRetTaskId(long locId, long skuId, string remark, string productCode, int lineTaskNo = 0);
    /// <summary>
    /// 创建异常任务 返回任务ID(出库二次扫描用)
    /// </summary>
    /// <param name="locId">当前位置</param>
    /// <param name="skuId">SKU</param>
    /// <param name="remark">异常原因</param>
    /// <returns></returns>
    long LocationOutAbnormalTaskAndCmdRetTaskId(long locId, long skuId, string remark, string productCode, int lineTaskNo = 0);

    /// <summary>
    /// 创建异常任务 返回指令ID
    /// </summary>
    /// <param name="locId"></param>
    /// <param name="skuId"></param>
    /// <param name="remark"></param>
    /// <returns></returns>
    long LocationAbnormalTaskAndCmdRetCmdId(long locId, long skuId, string remark, int taskNo, long equipId = 0);
}
